Versi 1
| Field | Isi |
|---|---|
| Dokumen ID | VBS-BRD-010 |
| Deskripsi | Mengatur kirim email laporan brand: penerima, kategori laporan, dan jadwal pengiriman |
| Nomor Revisi | 1 |
| Tanggal | 2026-10-03 |
| Keterangan | Inisiasi dokumentasi |
1. Ringkasan
a. In scope
- Admin brand dapat mengatur penerima email laporan per kategori (Akuntansi, Stok & Persediaan, Penjualan, Pembelian)
- Admin brand dapat mengatur periode pengiriman email
- Admin brand dapat menyimpan pengaturan subscription email
b. Catatan
c. Kesimpulan
- [FE] -
- [BE] -
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | Admin dapat mengatur email penerima per kategori laporan |
| FR-02 | Admin dapat mengatur periode pengiriman email |
| FR-03 | Sistem menyimpan subscription email secara bulk |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Mengatur penerima email per kategori laporan |
| UC-02 | Mengatur periode pengiriman email |
| UC-03 | Menyimpan email subscription |
4. Use Case Scenario
UC-01 : Mengatur penerima email per kategori laporan
| Aktor | Brand admin |
| Deskripsi | Memilih laporan aktif dan penerima email per tab kategori |
| Prekondisi | Login sebagai brand admin Halaman email subscription terbuka |
| Alur utama | 1. Admin membuka tab kategori laporan. 2. Admin mengaktifkan laporan yang diinginkan. 3. Admin mengatur email penerima. |
| Alur negatif | - Jika bukan brand admin, pengaturan dibatasi / tidak bisa disimpan. - Jika email tidak valid, simpan gagal dengan pesan error. |
| Bisnis rule | - Kategori tab: Akuntansi, Stok & Persediaan, Penjualan, Pembelian. - Hanya item laporan yang active yang ikut disimpan. |
| Postkondisi | Draft penerima & pilihan laporan siap di UI |
| Trigger | Ubah pilihan di tab kategori |
| Kode FR | FR-01 |
UC-02 : Mengatur periode pengiriman email
| Aktor | Brand admin |
| Deskripsi | Mengatur frekuensi/periode kirim lewat sidebar |
| Prekondisi | Halaman email subscription terbuka |
| Alur utama | 1. Admin membuka “Atur Periode Pengiriman Email”. 2. Admin memilih weekly / monthly / yearly. 3. Admin menutup sidebar (periode tersimpan di state, disimpan lewat config). |
| Alur negatif | - Jika nilai periode sama dengan yang sudah tersimpan, field tersebut tidak dikirim ulang. - Jika tanggal yearly di luar rentang yang diizinkan, tanggal tidak bisa dipilih. |
| Bisnis rule | - Periode yearly disimpan berformat DD/MM.- Tanggal yang bisa dipilih dibatasi: tidak boleh tahun lalu penuh / tahun depan penuh (disableDates). - Perubahan periode disimpan lewat konfigurasi brand ( config_brand). |
| Postkondisi | Periode terpilih di state UI |
| Trigger | Tombol atur periode |
| Kode FR | FR-02 |
UC-03 : Menyimpan email subscription
| Aktor | Brand admin |
| Deskripsi | Menyimpan semua pengaturan subscription |
| Prekondisi | Draft email/periode sudah diisi |
| Alur utama | 1. Admin klik Simpan Perubahan. 2. Sistem mengelompokkan laporan aktif per periode. 3. Sistem menyimpan subscription bulk. 4. Sistem menampilkan sukses. |
| Alur negatif | - Jika API gagal, muncul alert error dengan pesan kegagalan. - Jika tidak ada item aktif, payload subscription minimal hanya penerima utama. |
| Bisnis rule | - Payload mengelompokkan ke daily, weekly, monthly, yearly.- Setiap item memuat feature_id dan time_sent.- Penerima tambahan memakai user_id unik.- Pesan sukses UI: “Berhasil Membuat Subscribe Email”. |
| Postkondisi | Subscription tersimpan |
| Trigger | Tombol simpan |
| Kode FR | FR-03 |
5. Data Flow Diagram
DFD-01
6. Sequence Diagram
SD-01 — UC-01 : Mengatur penerima email per kategori laporan
SD-02 — UC-02 : Mengatur periode pengiriman email
SD-03 — UC-03 : Menyimpan email subscription
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
POST /brand-users/subscribe-email/bulk | existing | - |
PUT /brand/config/:id | existing | - |